package com.mx.ipn.escom.wad.proyecto.usuario.controller;

import java.util.List;
import javax.inject.Named;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.apache.struts2.rest.DefaultHttpHeaders;
import org.apache.struts2.rest.HttpHeaders;
import com.mx.ipn.escom.wad.proyecto.usuario.bussines.UsuarioBs;
import com.mx.ipn.escom.wad.proyecto.usuario.model.Usuario;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

@Namespace("/usuarios")
@Named
@Results({
		@Result(name = "success", type = "redirectAction", params = {
				"actionName", "gestionar-usuario" }),
		@Result(name = "cerrarSesion", type = "redirectAction", params = {
				"actionName", "gestionar-usuario/login" }) })
public class GestionarUsuarioCtrl extends ActionSupport implements
		ModelDriven<Usuario> {

	private static final long serialVersionUID = 1L;

	private Integer idSel;

	private Usuario model;

	private UsuarioBs usuarioBs;

	private List<Usuario> listUsuario;
	
	private String confirmarPassword;

	public HttpHeaders index() {
		listUsuario = usuarioBs.findAll();
		if(listUsuario == null || listUsuario.isEmpty()){
			addActionMessage(getText("SIN_REGISTROS_USUARIO"));
		}
		return new DefaultHttpHeaders("index");
	}

	public String editNew() {
		return "editNew";
	}

	public void validateCreate() {

	}

	public String create() {
		System.out.println("Ya estoy en el create");
		return "success";
	}

	public String edit() {
		return "edit";
	}

	public void validateUpdate() {

	}

	public String update() {
		return "success";
	}

	public String deleteConfirm() {
		return "deleteConfirm";
	}

	public String destroy() {
		return "success";
	}

	public String show() {
		return "show";
	}
	
	public String cancelar(){
		System.out.println("Entre al metodo cancelar");
		return "index";
	}
	
	public String cerrarSesion(){
		System.out.println("Entre aqui cerrarSesion");
		return "cerrarSesion";
	}

	public Usuario getModel() {
		if (model == null) {
			model = new Usuario();
		}
		return model;
	}

	public void setModel(Usuario model) {
		this.model = model;
	}

	public UsuarioBs getUsuarioBs() {
		return usuarioBs;
	}

	public void setUsuarioBs(UsuarioBs usuarioBs) {
		this.usuarioBs = usuarioBs;
	}

	public List<Usuario> getListUsuario() {
		return listUsuario;
	}

	public void setListUsuario(List<Usuario> listUsuario) {
		this.listUsuario = listUsuario;
	}

	public Integer getIdSel() {
		return idSel;
	}

	public void setIdSel(Integer idSel) {
		if(idSel!=null && model==null){
			model=usuarioBs.findById(idSel);
		}
		this.idSel = idSel;
	}

	/**
	 * @return the confirmarPassword
	 */
	public String getConfirmarPassword() {
		return confirmarPassword;
	}

	/**
	 * @param confirmarPassword the confirmarPassword to set
	 */
	public void setConfirmarPassword(String confirmarPassword) {
		this.confirmarPassword = confirmarPassword;
	}
}
